package com.pengliu.common.exception;

import java.util.ArrayList;
import java.util.List;

/**
 * user: pengliu
 * date: 2017年10月17日
 * desc:
 * @author pengliu
 */
public enum ExceptionEnums {
	/**
	 * 成功状态
	 */
	Success(0,"成功"),
	//**********************************************************************************
	//   【业务错误】
	//**********************************************************************************
	FAIL(-1,"失败"),
	USEREXISTNOTADD(-1,"账号已存在,不能重复添加"),
	
	//**********************************************************************************
	//   【系统错误】
	//**********************************************************************************
	RequestMethodError(-9998,"请求方法(GET/POST)错误"),
	Error(-9999,"系统错误")
	;
	
	/** 枚举值 */
	private final Integer code;
	
	/** 枚举描述 */
	private final String message;
	
	public Integer getCode() {
		return code;
	}

	public String getMessage() {
		return message;
	}

	/**
	 * 构造一个<code>DomainResultCodeEnum</code>枚举对象
	 *
	 * @param code
	 * @param message
	 */
	private ExceptionEnums(Integer code, String message) {
		this.code = code;
		this.message = message;
	}
	
	/**
	 * 通过枚举<code>code</code>获得枚举
	 *
	 * @param code
	 * @return DomainResultCodeEnum
	 */
	public static ExceptionEnums getByCode(Integer code) {
		for (ExceptionEnums o : values()) {
			if (o.getCode().intValue() == code.intValue()) {
				return o;
			}
		}
		return null;
	}
	
	/**
	 * 获取全部枚举
	 * 
	 * @return List<DomainResultCodeEnum>
	 */
	public List<ExceptionEnums> getAllEnum() {
		List<ExceptionEnums> list = new ArrayList<ExceptionEnums>();
		for (ExceptionEnums exceptionEnums : values()) {
			list.add(exceptionEnums);
		}
		return list;
	}
	
	/**
	 * 获取全部枚举值
	 * 
	 * @return List<String>
	 */
	public List<Integer> getAllEnumCode() {
		List<Integer> list = new ArrayList<Integer>();
		for (ExceptionEnums exceptionEnums : values()) {
			list.add(exceptionEnums.getCode());
		}
		return list;
	}
}
